/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import java.util.ArrayList;
import java.util.List;

/**
 * Clase que representa un nodo del arbol en la clase [@Arbol] donde se
 * encuentra una palabra.
 *
 * @author ricardogarcia
 */
public class Node {

    private char letra;
    List listaletras;
    boolean esFinalPalabra;

    /**
     * Constructor de la clase. Le asigna memoria al atributo lista de letras, y
     * esFinalPalabra lo inicializa en falso
     */
    public Node() {
        listaletras = new ArrayList<Node>();
        esFinalPalabra = false;
    }

    /**
     * Constructor de la clase. Le asigna memoria al atributo lista de letras,
     * le asigna una letra al atributo letra recibido por paramentro y
     * esFinalPalabra lo inicializa en falso
     *
     * @param letra de tipo char. Es la letra que se le asignara al nodo.
     */
    public Node(char letra) {
        this.letra = letra;
        listaletras = new ArrayList<Node>();
        esFinalPalabra = false;
    }

    /**
     * Devuelve la letra que se encuentra en el nodo
     *
     * @return letra de tipo char. Es la letra que posee el nodo.
     */
    public char getLetra() {
        return letra;
    }

    /**
     * Asigna la letra que se encuentra en el nodo
     *
     * @param letra de tppo char. Es la letra que se le asignara al nodo
     */
    public void setLetra(char letra) {
        this.letra = letra;
    }

    /**
     * Devuelve la lista de las letras validas en la partida
     *
     * @return listaletras de tipo List. Son las letras almacenadas por el nodo
     */
    public List getListaletras() {
        return listaletras;
    }

    /**
     * Asigna la lista de las letras validas en la partida
     *
     * @param listaletras de tipo List. Es la lista de letras que seran
     * asignadas al nodo
     */
    public void setListaletras(List listaletras) {
        this.listaletras = listaletras;
    }

    /**
     * Devuelve si una palabra es valida
     *
     * @return esFinalPalabra de tipo boolean. Es la respuesta a si una palabra
     * es valida o no .
     */
    public boolean isEsFinalPalabra() {
        return esFinalPalabra;
    }

    /**
     * Asigna a esFinalPalabra si la palabra es valida
     *
     * @param esFinalPalabra de tipo boolean. Asigna al nodo si la palabra es o
     * no valida.
     */
    public void setEsFinalPalabra(boolean esFinalPalabra) {
        this.esFinalPalabra = esFinalPalabra;
    }
}
